home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / clang / bccapp.zip / ADL.H < prev    next >
C/C++ Source or Header  |  1991-09-15  |  5KB  |  201 lines

  1. /*
  2.  *
  3.  * Public Header file for the ADL.LIB toolkit
  4.  *
  5.  * (C) 1990 Vision Software
  6.  *
  7.  * $Id: adl.h 1.2002 91/05/03 14:31:25 pcalvin beta $
  8.  *
  9.  * Comments:
  10.  *
  11.  *    Not much to say
  12.  *
  13.  * Bugs:
  14.  *
  15.  * None documented
  16.  *
  17.  */
  18. #if (!defined(__ADL__))
  19. #define __ADL__
  20.  
  21. /*
  22.  *    Macro that contains current version in a string..
  23.  */
  24. #define szADLVersion  "1.20"
  25.  
  26. /*
  27.  * Windows/Text positioning
  28.  */
  29. typedef INT ROW;
  30. STATIC CONST ROW rowNil = 0;
  31.  
  32. typedef INT COL;
  33. STATIC CONST COL colNil = 0;
  34.  
  35. /*
  36.  * Keycodes for input.
  37.  * Using CD because a CH can only hold 8 bits
  38.  */
  39. typedef INT CD;
  40.  
  41. STATIC CONST CD cdNil = 0;
  42. STATIC CONST CD cdEscape = 27;
  43. STATIC CONST CD cdReturn = 13;
  44. STATIC CONST CD cdTab = 9;
  45. STATIC CONST CD cdBackSpace = 8;
  46. STATIC CONST CD cdCursorLeft = 0x4b00;
  47. STATIC CONST CD cdCursorRight = 0x4d00;
  48. STATIC CONST CD cdCursorUp = 0x4800;
  49. STATIC CONST CD cdCursorDown = 0x5000;
  50. STATIC CONST CD cdPageDown = 0x5100;
  51. STATIC CONST CD cdPageUp = 0x4900;
  52. STATIC CONST CD cdHome = 0x4700;
  53. STATIC CONST CD cdEnd = 0x4f00;
  54. STATIC CONST CD cdDelete = 0x5300;
  55. STATIC CONST CD cdInsert = 0x5200;
  56. STATIC CONST CD cdHelp = 0x3b00;
  57.  
  58. /*
  59.  * Colour constants.EGA mode
  60.  */
  61. typedef INT CO;
  62. STATIC CONST CO coError = -1;
  63. STATIC CONST CO coNil = 0;
  64. STATIC CONST CO coBlack = 0;
  65. STATIC CONST CO coBlue = 1;
  66. STATIC CONST CO coGreen = 2;
  67. STATIC CONST CO coCyan = 3;
  68. STATIC CONST CO coRed = 4;
  69. STATIC CONST CO coMagenta = 5;
  70. STATIC CONST CO coBrown = 6;
  71. STATIC CONST CO coWhite = 7;
  72. STATIC CONST CO coDarkGray = 8;
  73. STATIC CONST CO coLightBlue = 9;
  74. STATIC CONST CO coLightGreen = 10;
  75. STATIC CONST CO coLightCyan = 11;
  76. STATIC CONST CO coLightRed = 12;
  77. STATIC CONST CO coLightMagenta = 13;
  78. STATIC CONST CO coYellow = 14;
  79. STATIC CONST CO coBrightWhite = 15;
  80.  
  81. /*
  82.  * Colour constants for Mono
  83.  */
  84. STATIC CONST CO coNormal = 7;
  85. STATIC CONST CO coHigh = 15;
  86. STATIC CONST CO coUnderline = 1;
  87. STATIC CONST CO coHighUnder = 9;
  88. STATIC CONST CO coReverse = 112;
  89. STATIC CONST CO coHighReverse = 120;
  90.  
  91. /*
  92.  * Window border types
  93.  */
  94. enum BD
  95.     {
  96.     bdNone = 0, bdSingle = 1, bdDouble = 2
  97.     };
  98.  
  99. /*
  100.  *
  101.  * Context-sensitive help system
  102.  *
  103.  */
  104. class HELP
  105.     {
  106. public:
  107.     HELP(SZ sz);
  108.     ~HELP();
  109.     VOID Replace(SZ sz);
  110. private:
  111.     VOID ShowCurrent();
  112.     SZ szLast;
  113.     STATIC VOID Start();
  114.     STATIC SZ szCurrent;
  115.     };
  116.  
  117. /*
  118.  *
  119.  * Cursor visibility control.
  120.  * Using objects of this class will preserve the state of the cursor
  121.  * After exiting the block..
  122.  *
  123.  */
  124. class CURSOR
  125.     {
  126. public:
  127.     CURSOR(BOOL fTurnOnCursor = fTrue);
  128.     ~CURSOR();
  129. private:
  130.     VOID Set(BOOL fTurnOn);
  131.     BOOL fFinishState;
  132.     STATIC BOOL fCurrentState;
  133.     };
  134.  
  135. /*
  136.  * Window subsystem.  Used by Popups (And subsequence classes) as
  137.  * a basis for the screen control
  138.  */
  139. class WINDOW
  140.     {
  141. public:
  142.     WINDOW(ROW row1,COL col1,ROW row2,COL col2,CO coFore,CO coBack,SZ sz=szNil,BOOL fScroll = fFalse);
  143.     WINDOW(VOID);
  144.     ~WINDOW(VOID);
  145.     VOID Draw(VOID);
  146.     VOID Open(VOID);
  147.     VOID Close(VOID);
  148.     VOID Move(ROW row,COL col);
  149.     ROW RowQuery(VOID);
  150.     COL ColQuery(VOID);
  151.     VOID Cls(VOID);
  152.     VOID ClearRow(ROW rowClear);
  153.     VOID ClearCol(COL colClear);
  154.     VOID ScrollDrow(ROW drow);
  155.     VOID ScrollDCol(COL dcol);
  156.     VOID SetScrollCol(COL colLeft,COL colRight);
  157.     VOID SetScrollRow(ROW rowTop,ROW rowBottom);
  158.     VOID SetRowCol(ROW row,COL col);
  159.     VOID Say(SZ sz,CO coFore = coError,CO coBack = coError);
  160.     VOID SayAt(ROW row,COL col,SZ sz,CO coFore = coError,CO coBack = coError);
  161.     VOID SayHot(ROW row,COL col,SZ sz,CCH cch,CO coFore = coError,CO coBack = coError);
  162.     VOID SayCentered(ROW row,SZ sz,CO coFore = coError,CO coBack = coError);
  163.     VOID PutCh(CHAR ch,CO coFore = coError,CO coBack = coError);
  164. private:
  165.     CO CoFromCoCo(CO coFore,CO coBack);
  166.     VOID AdvanceCol(VOID);
  167.     VOID AdvanceRow(VOID);
  168.     VOID Restore(PUCH puch);
  169.     VOID Save(PUCH puch);
  170.     BOOL FValidWindow();
  171.     ROW RowAbs(ROW row);
  172.     COL ColAbs(COL col);
  173.     ROW rowTop,rowBottom,rowCurrent,rowScrollTop,rowScrollBottom;
  174.     COL colLeft,colRight,colCurrent,colScrollLeft,colScrollRight;
  175.     PUCH puchBuffer;
  176.     SZ szTitle;
  177.     CO coForeground;
  178.     CO coBackground;
  179.     BOOL fAutomaticScroll;
  180.     BOOL fOpen;
  181.     };
  182.  
  183. /*
  184.  *
  185.  * Public utility routines.
  186.  *
  187.  */
  188. EXTERN BOOL FAskSz(SZ sz,SZ szHelp = szNil);        // Asking Yes/No
  189. EXTERN VOID SaySz(SZ sz,SZ szHelp = szNil);        // Message to user
  190. EXTERN VOID ErrorSz(SZ sz,SZ szHelp = szNil);    // Error message to user
  191. EXTERN CD CdInput(VOID);                                // Generic Input Interface
  192. EXTERN VOID Command(SZ sz = szNil);                    // DOS Command
  193.  
  194. /*
  195.  * Global variables to provide run-time dimensions for the screen..
  196.  */
  197. EXTERN ROW rowGlobalWindowBottom;
  198. EXTERN COL colGlobalWindowRight;
  199.  
  200. #endif    /* !defined(__ADL__) */
  201.